Skip to content

SE-Software Process Model

What is a software process model?

  • A software process
    • is a set of activities whose goal is the development or evolution (演变) of software
  • Software process model
    • a simplified representation of a software process from a specific perspective.

What process models have we learnt in this semester?

Waterfall model

hbStB7

  • A process that flows in one - direction, involving analysis, design, coding, testing, and maintenance in sequence.

  • Advantage:

    • Straightforward and Disciplined
  • Disadvantage:

    • Users cannot describe their requirements very clearly at the beginning
    • Hard to follow
    • The projects developed with this process are often delayed

Incremental process model

xTgFGI

  • Allows doing the most important features first and adding the rest later, with a loop in the process for adding more requirements.

  • Clients do NOT need to specify the requirements for the whole system at the beginning

  • Clients can specify the most important parts to finish first

  • It requires more testing each time a new increment is added compared to the waterfall model.

  • Advantage:

    • The risk that the whole system fails is lower (compared to the waterfall model)
    • Shorten the delivery time
  • Disadvantage:

    • The system structure is loose
    • Hard to define the increments

Prototyping model

80h26f

  • A quick design -> the construction of a prototype

  • Identify software requirements

  • Paper work Prototype: A non-computerized form of prototype, likely involving physical or hand-drawn representations to give an initial idea of the system.

  • Computer programs Prototype: A prototype in the form of a computer program, which can be evolved into the final system.

    • This allows developers to have a quick design and for users to get an initial look at the system.
  • Advantages:

    • Users can have an initial look of the system
    • Developers have a quick design
    • The prototype can be evolved to a system
  • Disadvantages:

    • Rush to get it work
    • Hard to ensure the quality and to maintain

Spiral model

dsYLfE

  • proposed by Barry Boehm

  • An evolutionary(演变) (iterative) software process model

  • Combine both waterfall model and prototyping model

  • Many variants are available

  • Advantages:

    • Developers can using prototyping in each evolutionary level
    • Reduce the risk
  • Disadvantage:

    • Continual risk analysis
    • Document maintenance

Rational Unified Process

  • A process includes many cycles

  • One cycle includes four phases

    • Inception
    • Elaboration
    • Construction
    • Transitions
  • One phase includes several iterations

    • Workflows are in one iteration
  • Advantages:

    • Combine several process models
      • Support prototyping and incremental delivery
    • Illustrate good practices in specification and design
  • Disadvantage:

    • Not suitable for embedded software development